1. Field of the Invention
The present invention relates to the field of software testing and more particularly to automated software testing.
2. Description of the Related Art
The art of software development extends far beyond a mere coding of a functional specification for a computer program. Modern software development conforms to a lifecycle that begins with the functional specification leading into the formulation of a suitable architecture for an application implementing the functional specification. The lifecycle continues with the physical coding of the application and includes iterative testing and modification cycles to ensure the integrity of the code. Finally, the execution of the completed code can be analyzed to facilitate the further revision of the code to improve the performance of the code.
Traditional testing of a computer program can include the external monitoring of the integrity of the program and the performance of the program, either subjectively based upon end user impression, or objectively based upon independently acquired metrics. In the latter circumstance, the integrity of the program can include the simulation of user interaction with the user interface of the program to ensure the proper operation of the program logic. Likewise, the performance of the program can include an internal monitoring of the code through software test tooling as is known in the art.
Often, to test an application, testing personnel must establish and configure a testing environment. Within the testing environment, a test protocol can be defined for exercising a computing application. The individual steps and portions of the testing protocol, in turn, can be automated through operating system scripts, batch files and the like. Generally, automated testing includes a class of automated tests in which a driver tool simulates the input and responses of a human operator and sequentially checks the output generated by the computing application. The driver tool commonly employs its own language to describe the tasks it can be required to perform in testing the computing application.
Automated software testing can be managed through the use of two different types of artifacts: test plans and test cases enumerated within test plans. The content of each type of artifact will usually differ significantly across software test organizations. Specifically, there is a large level of customization that must be applied to the content of each artifact. Currently, most test organizations use free-form rich text documents for the content of these artifacts that generally includes different sections enumerated in a table of contents such as a set of test objective, testing requirements, and test cases to name only a few. When in the form of a rich text document, however, it can be very difficult to provide a useful serialization mechanism for serializing the test plan artifact to facilitate storage or the transfer of the artifact over a computer communications network between systems. Further, existing testing systems do not allow a templated form of the rich text document embodying the test plan and corresponding test cases to be externalized separately from the data to which the template is bound.